今天的這個功能相比近況來講簡單許多,他只需要一行就好,所以不需要雙層迴圈。
index.html
<p>
<h2 class="mb-0">
<button class="btn btn-secondary btn-lg btn-block" type="button" data-toggle="collapse"
data-target="#year_table"
aria-expanded="false" aria-controls="year_table">
年度數據
</button>
</h2>
</p>
<div class="collapse" id="year_table">
<table id="year_stat_table" class="table">
<thead>
</thead>
<tbody></tbody>
</table>
</div>
js的部分,可能可以把中間一些重複的code包成另一個function
function get_year(){
let p = document.getElementById("player").value;
if(p!=='選擇球員'){
let recent_table_head = $('#year_stat_table > thead');
let recent_table_body = $('#year_stat_table > tbody');
$.ajax({
type: 'POST',
url: "/get_year",
data: { "p": p },
success: function (result) {
year_table_head.empty();
year_table_body.empty();
let head = ['PA', 'AB', 'RBI', 'R', 'H', '2B', '3B', 'HR', 'SO', 'SB', 'CS', 'AVG', 'OBP', 'SLG'];
let tr = $('<tr/>');
for(let i = 0; i < head.length; i++){
let th = $('<th/>', {
scope: 'col',
text: head[i]
});
tr.append(th);
}
year_table_head.append(tr);
let year_body_tr = $('<tr/>');
for(let type in head){
let year_body_th = $('<th/>', {
scope: 'col',
text: result[head[type]]
});
year_body_tr.append(year_body_th);
}
year_table_body.append(year_body_tr);
}
});
}
}
app.py
@app.route('/get_year', methods=['POST'])
def get_year():
player = str(request.form.getlist('p')[0])
stat = get_hitter_stat(player)
if stat:
return jsonify(stat['年度'])
else:
return redirect(url_for('index'))
下一個功能是球隊勝率折線圖,這個功能可能會寫慢一點。